import type { User } from '@/types/user'
import { defineStore } from 'pinia'
import { ref } from 'vue'

export const useUserStore = defineStore('cp-user', () => {
  // 用户信息
  const user = ref<User>()
  // 设置用户，登录后使用
  const setUser = (u: User) => {
    user.value = u
  }
  // 清空用户，退出后使用
  const delUser = () => {
    user.value = undefined
  }

  // pinia的数据 刷新时. 数据会丢失. 
  // pinia的数据 存储到内存中 -> 只要一刷新, 数据必然丢失
  // 如何解决该问题? 
  // 将内存中的数据 -> 持久化到本地
  // 借助于xx插件 -> 持久化
  return { user, setUser, delUser }
}, {
  persist: true
})


/*

1. history模式刷新 404的问题
2. 页面自适应
2.1 px -> vw 
3. 封装组件 navbar 
4. 持久化 
4.1 pinia的数据 -> 内存中 
5. 梳理了企业级的项目目录结构
6. vant组件 
6.1 form组件 校验 / 提交    
7. 封装了axios实例 utils/request
8. 封装了请求方法  services/user
9. 梳理vue项目打包流程

基于pinia-plugin-persistedstate 实现数据持久化操作
基于postcss-px-to-viewport实现浏览器适配
封装axios实例, 实现拦截器的业务操作

*/ 